model = Sequential()
model.add(layers.Conv2D(32, (3,3), activation='relu', input_shape=(image_height,image_width,num_channels)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(64, (3,3), activation='relu'))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(96, (3,3), activation='relu'))  
model.add(layers.Dropout(0.4))
model.add(layers.Flatten())
model.add(layers.Dense(128, activation='relu')) 
model.add(layers.Dense(num_classes, activation='softmax'))

print(model.summary())

EPOCHS = 30
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
history = model.fit(X_train, y_train, validation_data=(X_test, y_test),
                    epochs=EPOCHS, batch_size=512, verbose=0)
plot(history)
